/**
 * 通过数据字典格式化
 * @param datas
 * @param value
 */
function dictFormatter(datas, value) {
	var text = '';
	$.each(datas, function(index, dict) {
		if (dict.dictValue == value) {
			text = '<span class="layui-badge '+ dict.listClass+'">'+dict.dictLabel+'</span>';
			return false;
		}
	});
	return text;
}

/**
 * 日期格式化
 */
function dateFormatter(e) {
	if (typeof (e) == "string") {// 如果是string或number(毫秒数)类型
		// 表示通过.Net MVC提供的 return Json(result,
		// JsonRequestBehavior.AllowGet);方式返回的/Date(1332919782070)/日期格式
		if (e.indexOf("Date") > 0) {
			/* json格式时间转js时间格式 */
			var value = e.substr(1, e.length - 2);
			var obj = eval('(' + "{Date: new " + value + "}" + ')');
			var date = obj["Date"];
			if (date.getFullYear() < 1900) {
				return "";
			}			
			return date.format("yyyy-MM-dd");
		}	 
		// 表示其他字符串或数字格式日期
		var date = new Date(e);
		return date.format("yyyy-MM-dd");
	} else if (typeof (e) == "number") {
		var date = new Date(e);
		return date.format("yyyy-MM-dd");
	} else if (e) {// 如果是Date类型
		return e.format("yyyy-MM-dd");
	} else {
		return "";
	}
}

function timeFormatter(e) {
	if (typeof (e) == "string") {// 如果是string或number(毫秒数)类型
		// 表示通过.Net MVC提供的 return Json(result,
		// JsonRequestBehavior.AllowGet);方式返回的/Date(1332919782070)/日期格式
		if (e.indexOf("Date") > 0) {
			/* json格式时间转js时间格式 */
			var value = e.substr(1, e.length - 2);
			var obj = eval('(' + "{Date: new " + value + "}" + ')');
			var date = obj["Date"];
			if (date.getFullYear() < 1900) {
				return "";
			}
			return date.format("yyyy-MM-dd hh:mm:ss");
		}
		// 表示其他字符串格式日期
		var date = new Date(e);
		var offset_GMT = new Date().getTimezoneOffset()
		var targetDate = new Date(date.getTime() + offset_GMT * 60 * 1000 + 8 * 60 * 60 * 1000);
		return targetDate.format("yyyy-MM-dd hh:mm:ss");
	} else if (typeof (e) == "number") { // 表示数字格式日期
		var date = new Date(e);
		return date.format("yyyy-MM-dd hh:mm:ss");
	} else if (e) {// 如果是Date类型
		return e.format("yyyy-MM-dd hh:mm:ss");
	} else {
		return "";
	}
}

/**
 * 格式化数值
 * @param value 需要格式化的数值
 * @param precision 小数点后位数
 */
function numberFormatter(value, precision) {
	if(typeof(precision) == "undefined") {
        precision=2;
	}
	if(typeof(value) == "undefined") {
		return "0.00";
	}
	if(typeof(value) == "string") {
		if(common.isEmpty(value)) return '';
		else return parseFloat(value).toFixed(precision);
	}
	if(typeof(value) == "number") {
		return value.toFixed(precision);
	}
	return "0.00";
}

/**
 * 格式化status
 */
function statusFormatter(value, row){
	if (value == 0 ) return '<span class="layui-badge layui-bg-green">正常</span>';
	if (value == 1 ) return '<span class="layui-badge">停用</span>';
}

function sexFormatter(value){
    if (value == 1) return '<span class="layui-badge layui-bg-blue">男</span>';
    if (value == 2) return '<span class="layui-badge">女</span>';
}

function titleFormatter(value){
    if(common.isEmpty(value)){
        return "";
    }else{
        return '<span title="'+value+'">'+value+'</span>';
    }
}

// 秒转时分秒
function s2hms(s) {
	var t='';
	if(s > -1){
		var hour = Math.floor(s/3600);
		var min = Math.floor(s/60) % 60;
		var sec = s % 60;
		if(hour>=1) {
			t = hour + "小时";
		}
		if(min < 10){t += "0";}
		t += min + "分";
		if(sec < 10){t += "0";}
		t = t + sec + "秒";
	}
	return t;
}



Date.prototype.format = function(format) {
    var o = {
        "M+" : this.getMonth() + 1, // month
        "d+" : this.getDate(), // day
        "h+" : this.getHours(), // hour
        "m+" : this.getMinutes(), // minute
        "s+" : this.getSeconds(), // second
        "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
        "S" : this.getMilliseconds()
        // millisecond
    }

    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "")
            .substr(4 - RegExp.$1.length));
    }

    for ( var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
                : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
}
